package cn.fl.inscare.transform;

import cn.cmm.base.framework.utils.StringUtils;
import cn.fl.inscare.vo.InsPolicyDetailVO;
import ins.car.facade.car.car.common.MoneyConvert;
import ins.car.facade.car.car.dto.InsPolicyDetailDTO;

import java.math.BigDecimal;


/**
 * @Description: 保单中保险详情表，类型，金额，起保日期，截止日期 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据
 * @Description: VO转换数据变成DTO传递到服务端
 * @Description: VO不能在服务端出现
 */
public class InsBaseInsPolicyDetailVOTransform {


    /**
     * DTO 转  VO
     *
     * @param po InsPolicyDetailDTO
     * @return InsPolicyDetailVO
     */
    public static InsPolicyDetailVO baseToVO(InsPolicyDetailDTO dto) {
        InsPolicyDetailVO vo = null;
        if (dto != null) {
            vo = new InsPolicyDetailVO();
            vo.setId(dto.getId());
            vo.setApplicationId(dto.getApplicationId());//保单id
            vo.setInsTypNm(dto.getInsTypNm());//险种名称
            vo.setInsTypeCd(dto.getInsTypeCd());//保险险种cd
            vo.setInsDesc(dto.getInsDesc());//保险险种说明
            vo.setInsAmt(dto.getInsAmt());//保险金额_原价
            vo.setInsDiscountAmt(dto.getInsDiscountAmt());//保险优惠金额
            vo.setInsBeginDt(dto.getInsBeginDt());//保单起始日期，默认保一年
            vo.setInsEndDt(dto.getInsEndDt());//保单结束日期
            vo.setPlcNo(dto.getPlcNo());//保单编号
            vo.setIsDel(dto.getIsDel());//是否删除(INS0038)) ：0. 否；1. 是
            vo.setIsExempt(dto.getIsExempt());
            vo.setIsBuy(dto.getIsBuy());

            vo.setCrtTm(dto.getCrtTm());//创建时间
            vo.setCrtUsrId(dto.getCrtUsrId());//创建人
            vo.setMdfTm(dto.getMdfTm());//修改时间
            vo.setMdfUsrId(dto.getMdfUsrId());//修改人


            //保险金额_原价 用于页面显示 (数据库/100)
            if (StringUtils.isNotEmpty(vo.getInsAmt())) {
                BigDecimal insAmtDis = MoneyConvert.fen2Yuan(dto.getInsAmt());
                vo.setInsAmtDis(insAmtDis);
            } else {
                vo.setInsAmtDis(BigDecimal.valueOf(0l));
            }
        }
        return vo;
    }

    /**
     * VO 转 DTO
     *
     * @param dto InsPolicyDetailVO
     * @return InsPolicyDetailDTO
     */
    public static InsPolicyDetailDTO baseToDTO(InsPolicyDetailVO vo) {
        InsPolicyDetailDTO dto = null;
        if (vo != null) {
            dto = new InsPolicyDetailDTO();
            dto.setId(vo.getId());
            dto.setApplicationId(vo.getApplicationId());//保单id
            dto.setInsTypNm(vo.getInsTypNm());//险种名称
            dto.setInsTypeCd(vo.getInsTypeCd());//保险险种cd
            dto.setInsDesc(vo.getInsDesc());//保险险种说明
            dto.setInsAmt(vo.getInsAmt());//保险金额_原价
            dto.setInsDiscountAmt(vo.getInsDiscountAmt());//保险优惠金额
            dto.setInsBeginDt(vo.getInsBeginDt());//保单起始日期，默认保一年
            dto.setInsEndDt(vo.getInsEndDt());//保单结束日期
            dto.setPlcNo(vo.getPlcNo());//保单编号
            dto.setIsDel(vo.getIsDel());//是否删除(INS0038)) ：0. 否；1. 是
            dto.setIsExempt(vo.getIsExempt());
            dto.setIsBuy(vo.getIsBuy());

            dto.setCrtTm(vo.getCrtTm());//创建时间
            dto.setCrtUsrId(vo.getCrtUsrId());//创建人
            dto.setMdfTm(vo.getMdfTm());//修改时间
            dto.setMdfUsrId(vo.getMdfUsrId());//修改人
        }
        return dto;
    }
}
